import http from '@/utils/http'
import { filterSaveOrUpdateTime } from '@/filters'

/**
 * 添加数据
 * @param data
 */
export function created(data) {
    data = filterSaveOrUpdateTime(data)
    return http({
        url: '/api/upms/user/add',
        method: 'post',
        data
    })
}

/**
 * 修改数据
 * @param data
 */
export function updated(data) {
    data = filterSaveOrUpdateTime(data)
    return http({
        url: '/api/upms/user/update',
        method: 'post',
        data
    })
}

/**
 * 根据ID删除数据
 * @param id
 */
export function deleted(id) {
    return http({
        url: '/api/upms/user/delete/'+id,
        method: 'get'
    })
}

/**
 * 根据ID批量删除数据
 * @param id
 */
export function deletedBatch(ids) {
    return http({
        url: '/api/upms/user/deleteBatch/',
        method: 'get',
        params: ids
    })
}

/**
 * 根据IdD查询单条数据
 * @param id
 */
export function selectOne(id) {
    return http({
        url: '/api/upms/user/get/'+id,
        method: 'get'
    })
}

/**
 * 多条件查询数据列表
 * @param query
 */
export function selectList(query) {
    return http({
        url: '/api/upms/user/list',
        method: 'get',
        params: query
    })
}

/**
 * 获取用户详情
 * @param id
 */
export function getUserDetail(id) {
    return http({
        url: '/api/upms/user/getUserDetail',
        method: 'get',
        params: {id: id}
    })
}

/**
 * 批量重置用户密码（密码为手机号后4位）
 * @param data
 */
export function batchResetPassword(data) {
    return http({
        url: '/api/upms/user/batchResetPassword',
        method: 'post',
        data
    })
}

/**
 * 批量修改用户状态
 * @param data
 */
export function batchUpdateStatus(data) {
    return http({
        url: '/api/upms/user/batchUpdateStatus',
        method: 'post',
        data
    })
}

/**
 * 用户加入到组
 * @param data
 */
export function addUserToGroupAssign(data) {
    return http({
        url: '/api/upms/user/addUserToGroupAssign',
        method: 'post',
        data
    })
}

/**
 * 用户加入组织机构
 * @param data
 */
export function addUserToOrganizationAssign(data) {
    return http({
        url: '/api/upms/user/addUserToCompanyDeptAssign',
        method: 'post',
        data
    })
}

/**
 * 为用户分配角色
 * @param data
 */
export function addUserToRoleAssign(data) {
    return http({
        url: '/api/upms/user/addUserToRoleAssign',
        method: 'post',
        data
    })
}

/**
 * 根据ID获取用户的群组
 * @param id
 */
export function getUserGroups(id) {
    return http({
        url: '/api/upms/user/getUserGroups',
        method: 'get',
        params: {id: id}
    })
}

/**
 * 根据ID获取用户的角色
 * @param id
 */
export function getUserRoles(id) {
    return http({
        url: '/api/upms/user/getUserRoles',
        method: 'get',
        params: {id: id}
    })
}

/**
 * 根据ID获取用户的权限
 * @param id
 */
export function getUserPermission(id) {
    return http({
        url: '/api/upms/user/getUserPermission',
        method: 'get',
        params: {id: id}
    })
}



/**
 * 根据ID获取个人的群组，不需要权限验证
 * @param id
 */
export function getMyGroups(id) {
    return http({
        url: '/api/upms/user/getUserGroups',
        method: 'get',
        params: {id: id}
    })
}

/**
 * 根据ID获取个人的角色，不需要权限验证
 * @param id
 */
export function getMyRoles(id) {
    return http({
        url: '/api/upms/user/getMyRoles',
        method: 'get',
        params: {id: id}
    })
}

/**
 * 根据ID获取个人的权限，不需要权限验证
 * @param id
 */
export function getMyPermission(id) {
    return http({
        url: '/api/upms/user/getMyPermission',
        method: 'get',
        params: {id: id}
    })
}

/**
 * 修改个人密码，不需要权限验证
 * @param data
 */
export function updateMyPassword(data) {
    return http({
        url: '/api/upms/user/updateMyPassword',
        method: 'post',
        data
    })
}

/**
 * 修改用户头像
 * @param data
 */
export function updateMyAvatar(data) {
    return http({
        url: '/api/upms/user/updateMyAvatar',
        method: 'post',
        data
    })
}

/**
 * 修改个人基本信息
 * @param data
 */
export function updatedMyInfo(data) {
    data = filterSaveOrUpdateTime(data)
    return http({
        url: '/api/upms/user/update',
        method: 'post',
        data
    })
}